package com.bndg.browser.db

import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Transaction

@Dao
interface InputHistoryDao {
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insert(history: InputHistory)

    @Query("SELECT * FROM input_history WHERE input_text LIKE :query ORDER BY input_text ASC")
    fun searchHistory(query: String): List<InputHistory>

    @Query("SELECT * FROM input_history WHERE input_text = :inputText LIMIT 1")
    fun getByInputText(inputText: String): InputHistory?

    @Query("SELECT * FROM input_history")
    fun getAll(): List<InputHistory>

    //如果你只是插入或更新单条记录，通常不需要使用 @Transaction，Room 会自动处理事务
    fun insertOrUpdate(history: InputHistory) {
        val existingHistory = getByInputText(history.inputText)
        if (existingHistory != null) {
            // 如果已经存在相同 inputText 的记录，你可以更新数据或执行其他操作
            history.id = existingHistory.id // 如果你有单独的 update 方法
        }
        insert(history)
    }
}